package com.itheima.demo;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

public class Demo02 {//计算文件夹所包含的文件类型并返回类型和数目
    public static void main(String[] args) {
        File file = new File("D:\\demo");
        HashMap<String, Integer> map = new HashMap<>();
        getCount(map, file);
        System.out.println(map);
    }

    private static void getCount(HashMap<String, Integer> map, File file) {
        //获得文件列表
        File[] files = file.listFiles();
        //遍历
        for (File f : files) {
            if (f.isFile()) {//如果当前文件为文件则获取数目
                String[] nameArray = f.getName().split("\\.");
                String endName = nameArray[nameArray.length - 1];//获取后缀名
                if (map.containsKey(endName)){//如果已经包含该元素则出现使值加一
                    Integer count = map.get(endName);
                    count++;
                    map.put(endName, count);
                }else{//如果第一次出现该元素则出现次数为一
                    map.put(endName, 1);
                }
            } else {//如果当前文件为文件夹则递归
                getCount(map, f);
            }
        }
    }
}
